package com.dragon.modules.yuegou.query.order;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dragon.modules.yuegou.entity.order.OrderItemEntity;
import com.dragon.modules.yuegou.enums.SkuType;
import com.dragon.modules.yuegou.enums.order.OrderItemSellerType;
import com.dragon.modules.yuegou.enums.order.OrderItemTemplateType;
import com.dragon.modules.yuegou.mybatis.Condition;
import com.dragon.modules.yuegou.mybatis.Query;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonUnwrapped;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单物品 动态查询条件
 * 
 * @author pbuilder generated
 * @date 2020-07-07 09:57:15
 * @version 2.0
 */
@JsonInclude(Include.NON_NULL)
public class OrderItemQuery extends OrderItemEntity implements Query<OrderItemEntity> {

    /** 订单物品ID查询条件 */
	@JsonUnwrapped(prefix = "id")
	private Condition<String> idCondition;

    /** 订单号查询条件 */
	@JsonUnwrapped(prefix = "orderNo")
	private Condition<String> orderNoCondition;

    /** 商品ID查询条件 */
	@JsonUnwrapped(prefix = "skuId")
	private Condition<String> skuIdCondition;

    /** [全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE查询条件 */
	@JsonUnwrapped(prefix = "skuType")
	private Condition<SkuType> skuTypeCondition;

    /** 商品名查询条件 */
	@JsonUnwrapped(prefix = "skuTitle")
	private Condition<String> skuTitleCondition;

    /** 商品单价查询条件 */
	@JsonUnwrapped(prefix = "skuPrice")
	private Condition<BigDecimal> skuPriceCondition;

    /** 原价查询条件 */
	@JsonUnwrapped(prefix = "skuOriginalPrice")
	private Condition<BigDecimal> skuOriginalPriceCondition;

    /** 折扣价（用这个价格计算）查询条件 */
	@JsonUnwrapped(prefix = "skuDiscountPrice")
	private Condition<BigDecimal> skuDiscountPriceCondition;

    /** 商品积分查询条件 */
	@JsonUnwrapped(prefix = "skuPoints")
	private Condition<Integer> skuPointsCondition;

    /** 商品图片地址查询条件 */
	@JsonUnwrapped(prefix = "skuMainImages")
	private Condition<String> skuMainImagesCondition;

    /** 单位，待确定（商品模块）查询条件 */
	@JsonUnwrapped(prefix = "skuUnit")
	private Condition<Integer> skuUnitCondition;

    /** SKU规格属性 JSON存储查询条件 */
	@JsonUnwrapped(prefix = "skuAttrs")
	private Condition<String> skuAttrsCondition;

    /** 数量查询条件 */
	@JsonUnwrapped(prefix = "num")
	private Condition<Integer> numCondition;

    /** 抵扣金额查询条件 */
	@JsonUnwrapped(prefix = "discountFee")
	private Condition<BigDecimal> discountFeeCondition;

    /** 优惠券抵扣金额查询条件 */
	@JsonUnwrapped(prefix = "couponDiscountFee")
	private Condition<BigDecimal> couponDiscountFeeCondition;

    /** 总金额（amount = price * num)查询条件 */
	@JsonUnwrapped(prefix = "totalAmount")
	private Condition<BigDecimal> totalAmountCondition;

    /** 总积分查询条件 */
	@JsonUnwrapped(prefix = "totalPoints")
	private Condition<Integer> totalPointsCondition;

    /** [枚举]卖家类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSD、3-商户-MERCHANT查询条件 */
	@JsonUnwrapped(prefix = "sellerType")
	private Condition<OrderItemSellerType> sellerTypeCondition;

    /** 集团ID查询条件 */
	@JsonUnwrapped(prefix = "groupId")
	private Condition<String> groupIdCondition;

    /** 商圈ID查询条件 */
	@JsonUnwrapped(prefix = "busdId")
	private Condition<String> busdIdCondition;

    /** 商户ID查询条件 */
	@JsonUnwrapped(prefix = "merchantId")
	private Condition<String> merchantIdCondition;

    /** 模板ID查询条件 */
	@JsonUnwrapped(prefix = "templateId")
	private Condition<String> templateIdCondition;

    /** [枚举]模板类型：0-优惠券-COUPON、1-悦卡-YUECARD查询条件 */
	@JsonUnwrapped(prefix = "templateType")
	private Condition<OrderItemTemplateType> templateTypeCondition;

    /** 是否是虚拟商品查询条件 */
	@JsonUnwrapped(prefix = "virtualSku")
	private Condition<Boolean> virtualSkuCondition;

    /** 提货开始时间（为空表示无限制）查询条件 */
	@JsonUnwrapped(prefix = "pickupStartTime")
	private Condition<LocalDateTime> pickupStartTimeCondition;

    /** 提货超时时间（为空表示永不超时）查询条件 */
	@JsonUnwrapped(prefix = "pickupExpireTime")
	private Condition<LocalDateTime> pickupExpireTimeCondition;

	/**
	 * 构造一个查询条件对象
	 */
	public OrderItemQuery() {
		super();
	}

	/**
	 * 依据实体对象构造一个查询条件对象
	 * 
	 * @param entity 实体对象
	 */
	public OrderItemQuery(OrderItemEntity entity) {
		super(entity);
	}

	/**
	 * 依据其它查询条件对象的信息构造一个查询条件对象
	 * 
	 * @param other 查询条件对象
	 */
	public OrderItemQuery(OrderItemQuery other) {
		super(other);
		if (other.idCondition != null) {
			this.idCondition = other.idCondition.copy();
		}
		if (other.orderNoCondition != null) {
			this.orderNoCondition = other.orderNoCondition.copy();
		}
		if (other.skuIdCondition != null) {
			this.skuIdCondition = other.skuIdCondition.copy();
		}
		if (other.skuTypeCondition != null) {
			this.skuTypeCondition = other.skuTypeCondition.copy();
		}
		if (other.skuTitleCondition != null) {
			this.skuTitleCondition = other.skuTitleCondition.copy();
		}
		if (other.skuPriceCondition != null) {
			this.skuPriceCondition = other.skuPriceCondition.copy();
		}
		if (other.skuOriginalPriceCondition != null) {
			this.skuOriginalPriceCondition = other.skuOriginalPriceCondition.copy();
		}
		if (other.skuDiscountPriceCondition != null) {
			this.skuDiscountPriceCondition = other.skuDiscountPriceCondition.copy();
		}
		if (other.skuPointsCondition != null) {
			this.skuPointsCondition = other.skuPointsCondition.copy();
		}
		if (other.skuMainImagesCondition != null) {
			this.skuMainImagesCondition = other.skuMainImagesCondition.copy();
		}
		if (other.skuUnitCondition != null) {
			this.skuUnitCondition = other.skuUnitCondition.copy();
		}
		if (other.skuAttrsCondition != null) {
			this.skuAttrsCondition = other.skuAttrsCondition.copy();
		}
		if (other.numCondition != null) {
			this.numCondition = other.numCondition.copy();
		}
		if (other.discountFeeCondition != null) {
			this.discountFeeCondition = other.discountFeeCondition.copy();
		}
		this.setOther(other);
	}
	private void setOther(OrderItemQuery other){
		if(other.couponDiscountFeeCondition != null) {
			this.couponDiscountFeeCondition = other.couponDiscountFeeCondition.copy();
		}
		if(other.totalAmountCondition != null) {
			this.totalAmountCondition = other.totalAmountCondition.copy();
		}
		if(other.totalPointsCondition != null) {
			this.totalPointsCondition = other.totalPointsCondition.copy();
		}
		if(other.sellerTypeCondition != null) {
			this.sellerTypeCondition = other.sellerTypeCondition.copy();
		}
		if(other.groupIdCondition != null) {
			this.groupIdCondition = other.groupIdCondition.copy();
		}
		if(other.busdIdCondition != null) {
			this.busdIdCondition = other.busdIdCondition.copy();
		}
		if(other.merchantIdCondition != null) {
			this.merchantIdCondition = other.merchantIdCondition.copy();
		}
		if(other.templateIdCondition != null) {
			this.templateIdCondition = other.templateIdCondition.copy();
		}
		if(other.templateTypeCondition != null) {
			this.templateTypeCondition = other.templateTypeCondition.copy();
		}
		if(other.virtualSkuCondition != null) {
			this.virtualSkuCondition = other.virtualSkuCondition.copy();
		}
		if(other.pickupStartTimeCondition != null) {
			this.pickupStartTimeCondition = other.pickupStartTimeCondition.copy();
		}
		if(other.pickupExpireTimeCondition != null) {
			this.pickupExpireTimeCondition = other.pickupExpireTimeCondition.copy();
		}
	}

	@Override
	public QueryWrapper<OrderItemEntity> toQueryWrapper() {
		QueryWrapper<OrderItemEntity> wrapper = new QueryWrapper<>(this);
		if (idCondition != null) {
			idCondition.toWrapper(wrapper, COL_ID);
		}
		if (orderNoCondition != null) {
			orderNoCondition.toWrapper(wrapper, COL_ORDER_NO);
		}
		if (skuIdCondition != null) {
			skuIdCondition.toWrapper(wrapper, COL_SKU_ID);
		}
		if (skuTypeCondition != null) {
			skuTypeCondition.toWrapper(wrapper, COL_SKU_TYPE);
		}
		if (skuTitleCondition != null) {
			skuTitleCondition.toWrapper(wrapper, COL_SKU_TITLE);
		}
		if (skuPriceCondition != null) {
			skuPriceCondition.toWrapper(wrapper, COL_SKU_PRICE);
		}
		if (skuOriginalPriceCondition != null) {
			skuOriginalPriceCondition.toWrapper(wrapper, COL_SKU_ORIGINAL_PRICE);
		}
		if (skuDiscountPriceCondition != null) {
			skuDiscountPriceCondition.toWrapper(wrapper, COL_SKU_DISCOUNT_PRICE);
		}
		if (skuPointsCondition != null) {
			skuPointsCondition.toWrapper(wrapper, COL_SKU_POINTS);
		}
		if (skuMainImagesCondition != null) {
			skuMainImagesCondition.toWrapper(wrapper, COL_SKU_MAIN_IMAGES);
		}
		if (skuUnitCondition != null) {
			skuUnitCondition.toWrapper(wrapper, COL_SKU_UNIT);
		}
		if (skuAttrsCondition != null) {
			skuAttrsCondition.toWrapper(wrapper, COL_SKU_ATTRS);
		}
		if (numCondition != null) {
			numCondition.toWrapper(wrapper, COL_NUM);
		}
		if (discountFeeCondition != null) {
			discountFeeCondition.toWrapper(wrapper, COL_DISCOUNT_FEE);
		}
		return getQueryWrapper(wrapper);
	}

	private QueryWrapper<OrderItemEntity> getQueryWrapper(QueryWrapper<OrderItemEntity> wrapper){
		if (couponDiscountFeeCondition != null) {
			couponDiscountFeeCondition.toWrapper(wrapper, COL_COUPON_DISCOUNT_FEE);
		}
		if (totalAmountCondition != null) {
			totalAmountCondition.toWrapper(wrapper, COL_TOTAL_AMOUNT);
		}
		if (totalPointsCondition != null) {
			totalPointsCondition.toWrapper(wrapper, COL_TOTAL_POINTS);
		}
		if (sellerTypeCondition != null) {
			sellerTypeCondition.toWrapper(wrapper, COL_SELLER_TYPE);
		}
		if (groupIdCondition != null) {
			groupIdCondition.toWrapper(wrapper, COL_GROUP_ID);
		}
		if (busdIdCondition != null) {
			busdIdCondition.toWrapper(wrapper, COL_BUSD_ID);
		}
		if (merchantIdCondition != null) {
			merchantIdCondition.toWrapper(wrapper, COL_MERCHANT_ID);
		}
		if (templateIdCondition != null) {
			templateIdCondition.toWrapper(wrapper, COL_TEMPLATE_ID);
		}
		if (templateTypeCondition != null) {
			templateTypeCondition.toWrapper(wrapper, COL_TEMPLATE_TYPE);
		}
		if (virtualSkuCondition != null) {
			virtualSkuCondition.toWrapper(wrapper, COL_VIRTUAL_SKU);
		}
		if (pickupStartTimeCondition != null) {
			pickupStartTimeCondition.toWrapper(wrapper, COL_PICKUP_START_TIME);
		}
		if (pickupExpireTimeCondition != null) {
			pickupExpireTimeCondition.toWrapper(wrapper, COL_PICKUP_EXPIRE_TIME);
		}
		return wrapper;
	}

	/**
	 * 构造并返回订单物品ID查询条件
	 * 
	 * @return idCondition 订单物品ID查询条件
	 */
	public Condition<String> id() {
		this.idCondition = new Condition<>();
		return this.idCondition;
	}
	
	/**
	 * 获取订单物品ID查询条件
	 * 
	 * @return idCondition 订单物品ID查询条件
	 */
	public Condition<String> getIdCondition() {
		return idCondition;
	}

	/**
	 * 设置订单物品ID查询条件
	 * 
	 * @param idCondition 订单物品ID查询条件
	 */
	public void setIdCondition(Condition<String> idCondition) {
		this.idCondition = idCondition;
	}

	/**
	 * 构造并返回订单号查询条件
	 * 
	 * @return orderNoCondition 订单号查询条件
	 */
	public Condition<String> orderNo() {
		this.orderNoCondition = new Condition<>();
		return this.orderNoCondition;
	}
	
	/**
	 * 获取订单号查询条件
	 * 
	 * @return orderNoCondition 订单号查询条件
	 */
	public Condition<String> getOrderNoCondition() {
		return orderNoCondition;
	}

	/**
	 * 设置订单号查询条件
	 * 
	 * @param orderNoCondition 订单号查询条件
	 */
	public void setOrderNoCondition(Condition<String> orderNoCondition) {
		this.orderNoCondition = orderNoCondition;
	}

	/**
	 * 构造并返回商品ID查询条件
	 * 
	 * @return skuIdCondition 商品ID查询条件
	 */
	public Condition<String> skuId() {
		this.skuIdCondition = new Condition<>();
		return this.skuIdCondition;
	}
	
	/**
	 * 获取商品ID查询条件
	 * 
	 * @return skuIdCondition 商品ID查询条件
	 */
	public Condition<String> getSkuIdCondition() {
		return skuIdCondition;
	}

	/**
	 * 设置商品ID查询条件
	 * 
	 * @param skuIdCondition 商品ID查询条件
	 */
	public void setSkuIdCondition(Condition<String> skuIdCondition) {
		this.skuIdCondition = skuIdCondition;
	}

	/**
	 * 构造并返回[全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE查询条件
	 * 
	 * @return skuTypeCondition [全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE查询条件
	 */
	public Condition<SkuType> skuType() {
		this.skuTypeCondition = new Condition<>();
		return this.skuTypeCondition;
	}
	
	/**
	 * 获取[全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE查询条件
	 * 
	 * @return skuTypeCondition [全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE查询条件
	 */
	public Condition<SkuType> getSkuTypeCondition() {
		return skuTypeCondition;
	}

	/**
	 * 设置[全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE查询条件
	 * 
	 * @param skuTypeCondition [全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE查询条件
	 */
	public void setSkuTypeCondition(Condition<SkuType> skuTypeCondition) {
		this.skuTypeCondition = skuTypeCondition;
	}

	/**
	 * 构造并返回商品名查询条件
	 * 
	 * @return skuTitleCondition 商品名查询条件
	 */
	public Condition<String> skuTitle() {
		this.skuTitleCondition = new Condition<>();
		return this.skuTitleCondition;
	}
	
	/**
	 * 获取商品名查询条件
	 * 
	 * @return skuTitleCondition 商品名查询条件
	 */
	public Condition<String> getSkuTitleCondition() {
		return skuTitleCondition;
	}

	/**
	 * 设置商品名查询条件
	 * 
	 * @param skuTitleCondition 商品名查询条件
	 */
	public void setSkuTitleCondition(Condition<String> skuTitleCondition) {
		this.skuTitleCondition = skuTitleCondition;
	}

	/**
	 * 构造并返回商品单价查询条件
	 * 
	 * @return skuPriceCondition 商品单价查询条件
	 */
	public Condition<BigDecimal> skuPrice() {
		this.skuPriceCondition = new Condition<>();
		return this.skuPriceCondition;
	}
	
	/**
	 * 获取商品单价查询条件
	 * 
	 * @return skuPriceCondition 商品单价查询条件
	 */
	public Condition<BigDecimal> getSkuPriceCondition() {
		return skuPriceCondition;
	}

	/**
	 * 设置商品单价查询条件
	 * 
	 * @param skuPriceCondition 商品单价查询条件
	 */
	public void setSkuPriceCondition(Condition<BigDecimal> skuPriceCondition) {
		this.skuPriceCondition = skuPriceCondition;
	}

	/**
	 * 构造并返回原价查询条件
	 * 
	 * @return skuOriginalPriceCondition 原价查询条件
	 */
	public Condition<BigDecimal> skuOriginalPrice() {
		this.skuOriginalPriceCondition = new Condition<>();
		return this.skuOriginalPriceCondition;
	}
	
	/**
	 * 获取原价查询条件
	 * 
	 * @return skuOriginalPriceCondition 原价查询条件
	 */
	public Condition<BigDecimal> getSkuOriginalPriceCondition() {
		return skuOriginalPriceCondition;
	}

	/**
	 * 设置原价查询条件
	 * 
	 * @param skuOriginalPriceCondition 原价查询条件
	 */
	public void setSkuOriginalPriceCondition(Condition<BigDecimal> skuOriginalPriceCondition) {
		this.skuOriginalPriceCondition = skuOriginalPriceCondition;
	}

	/**
	 * 构造并返回折扣价（用这个价格计算）查询条件
	 * 
	 * @return skuDiscountPriceCondition 折扣价（用这个价格计算）查询条件
	 */
	public Condition<BigDecimal> skuDiscountPrice() {
		this.skuDiscountPriceCondition = new Condition<>();
		return this.skuDiscountPriceCondition;
	}
	
	/**
	 * 获取折扣价（用这个价格计算）查询条件
	 * 
	 * @return skuDiscountPriceCondition 折扣价（用这个价格计算）查询条件
	 */
	public Condition<BigDecimal> getSkuDiscountPriceCondition() {
		return skuDiscountPriceCondition;
	}

	/**
	 * 设置折扣价（用这个价格计算）查询条件
	 * 
	 * @param skuDiscountPriceCondition 折扣价（用这个价格计算）查询条件
	 */
	public void setSkuDiscountPriceCondition(Condition<BigDecimal> skuDiscountPriceCondition) {
		this.skuDiscountPriceCondition = skuDiscountPriceCondition;
	}

	/**
	 * 构造并返回商品积分查询条件
	 * 
	 * @return skuPointsCondition 商品积分查询条件
	 */
	public Condition<Integer> skuPoints() {
		this.skuPointsCondition = new Condition<>();
		return this.skuPointsCondition;
	}
	
	/**
	 * 获取商品积分查询条件
	 * 
	 * @return skuPointsCondition 商品积分查询条件
	 */
	public Condition<Integer> getSkuPointsCondition() {
		return skuPointsCondition;
	}

	/**
	 * 设置商品积分查询条件
	 * 
	 * @param skuPointsCondition 商品积分查询条件
	 */
	public void setSkuPointsCondition(Condition<Integer> skuPointsCondition) {
		this.skuPointsCondition = skuPointsCondition;
	}

	/**
	 * 构造并返回商品图片地址查询条件
	 * 
	 * @return skuMainImagesCondition 商品图片地址查询条件
	 */
	public Condition<String> skuMainImages() {
		this.skuMainImagesCondition = new Condition<>();
		return this.skuMainImagesCondition;
	}
	
	/**
	 * 获取商品图片地址查询条件
	 * 
	 * @return skuMainImagesCondition 商品图片地址查询条件
	 */
	public Condition<String> getSkuMainImagesCondition() {
		return skuMainImagesCondition;
	}

	/**
	 * 设置商品图片地址查询条件
	 * 
	 * @param skuMainImagesCondition 商品图片地址查询条件
	 */
	public void setSkuMainImagesCondition(Condition<String> skuMainImagesCondition) {
		this.skuMainImagesCondition = skuMainImagesCondition;
	}

	/**
	 * 构造并返回单位，待确定（商品模块）查询条件
	 * 
	 * @return skuUnitCondition 单位，待确定（商品模块）查询条件
	 */
	public Condition<Integer> skuUnit() {
		this.skuUnitCondition = new Condition<>();
		return this.skuUnitCondition;
	}
	
	/**
	 * 获取单位，待确定（商品模块）查询条件
	 * 
	 * @return skuUnitCondition 单位，待确定（商品模块）查询条件
	 */
	public Condition<Integer> getSkuUnitCondition() {
		return skuUnitCondition;
	}

	/**
	 * 设置单位，待确定（商品模块）查询条件
	 * 
	 * @param skuUnitCondition 单位，待确定（商品模块）查询条件
	 */
	public void setSkuUnitCondition(Condition<Integer> skuUnitCondition) {
		this.skuUnitCondition = skuUnitCondition;
	}

	/**
	 * 构造并返回SKU规格属性 JSON存储查询条件
	 * 
	 * @return skuAttrsCondition SKU规格属性 JSON存储查询条件
	 */
	public Condition<String> skuAttrs() {
		this.skuAttrsCondition = new Condition<>();
		return this.skuAttrsCondition;
	}
	
	/**
	 * 获取SKU规格属性 JSON存储查询条件
	 * 
	 * @return skuAttrsCondition SKU规格属性 JSON存储查询条件
	 */
	public Condition<String> getSkuAttrsCondition() {
		return skuAttrsCondition;
	}

	/**
	 * 设置SKU规格属性 JSON存储查询条件
	 * 
	 * @param skuAttrsCondition SKU规格属性 JSON存储查询条件
	 */
	public void setSkuAttrsCondition(Condition<String> skuAttrsCondition) {
		this.skuAttrsCondition = skuAttrsCondition;
	}

	/**
	 * 构造并返回数量查询条件
	 * 
	 * @return numCondition 数量查询条件
	 */
	public Condition<Integer> num() {
		this.numCondition = new Condition<>();
		return this.numCondition;
	}
	
	/**
	 * 获取数量查询条件
	 * 
	 * @return numCondition 数量查询条件
	 */
	public Condition<Integer> getNumCondition() {
		return numCondition;
	}

	/**
	 * 设置数量查询条件
	 * 
	 * @param numCondition 数量查询条件
	 */
	public void setNumCondition(Condition<Integer> numCondition) {
		this.numCondition = numCondition;
	}

	/**
	 * 构造并返回抵扣金额查询条件
	 * 
	 * @return discountFeeCondition 抵扣金额查询条件
	 */
	public Condition<BigDecimal> discountFee() {
		this.discountFeeCondition = new Condition<>();
		return this.discountFeeCondition;
	}
	
	/**
	 * 获取抵扣金额查询条件
	 * 
	 * @return discountFeeCondition 抵扣金额查询条件
	 */
	public Condition<BigDecimal> getDiscountFeeCondition() {
		return discountFeeCondition;
	}

	/**
	 * 设置抵扣金额查询条件
	 * 
	 * @param discountFeeCondition 抵扣金额查询条件
	 */
	public void setDiscountFeeCondition(Condition<BigDecimal> discountFeeCondition) {
		this.discountFeeCondition = discountFeeCondition;
	}

	/**
	 * 构造并返回优惠券抵扣金额查询条件
	 * 
	 * @return couponDiscountFeeCondition 优惠券抵扣金额查询条件
	 */
	public Condition<BigDecimal> couponDiscountFee() {
		this.couponDiscountFeeCondition = new Condition<>();
		return this.couponDiscountFeeCondition;
	}
	
	/**
	 * 获取优惠券抵扣金额查询条件
	 * 
	 * @return couponDiscountFeeCondition 优惠券抵扣金额查询条件
	 */
	public Condition<BigDecimal> getCouponDiscountFeeCondition() {
		return couponDiscountFeeCondition;
	}

	/**
	 * 设置优惠券抵扣金额查询条件
	 * 
	 * @param couponDiscountFeeCondition 优惠券抵扣金额查询条件
	 */
	public void setCouponDiscountFeeCondition(Condition<BigDecimal> couponDiscountFeeCondition) {
		this.couponDiscountFeeCondition = couponDiscountFeeCondition;
	}

	/**
	 * 构造并返回总金额（amount = price * num)查询条件
	 * 
	 * @return totalAmountCondition 总金额（amount = price * num)查询条件
	 */
	public Condition<BigDecimal> totalAmount() {
		this.totalAmountCondition = new Condition<>();
		return this.totalAmountCondition;
	}
	
	/**
	 * 获取总金额（amount = price * num)查询条件
	 * 
	 * @return totalAmountCondition 总金额（amount = price * num)查询条件
	 */
	public Condition<BigDecimal> getTotalAmountCondition() {
		return totalAmountCondition;
	}

	/**
	 * 设置总金额（amount = price * num)查询条件
	 * 
	 * @param totalAmountCondition 总金额（amount = price * num)查询条件
	 */
	public void setTotalAmountCondition(Condition<BigDecimal> totalAmountCondition) {
		this.totalAmountCondition = totalAmountCondition;
	}

	/**
	 * 构造并返回总积分查询条件
	 * 
	 * @return totalPointsCondition 总积分查询条件
	 */
	public Condition<Integer> totalPoints() {
		this.totalPointsCondition = new Condition<>();
		return this.totalPointsCondition;
	}
	
	/**
	 * 获取总积分查询条件
	 * 
	 * @return totalPointsCondition 总积分查询条件
	 */
	public Condition<Integer> getTotalPointsCondition() {
		return totalPointsCondition;
	}

	/**
	 * 设置总积分查询条件
	 * 
	 * @param totalPointsCondition 总积分查询条件
	 */
	public void setTotalPointsCondition(Condition<Integer> totalPointsCondition) {
		this.totalPointsCondition = totalPointsCondition;
	}

	/**
	 * 构造并返回[枚举]卖家类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSD、3-商户-MERCHANT查询条件
	 * 
	 * @return sellerTypeCondition [枚举]卖家类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSD、3-商户-MERCHANT查询条件
	 */
	public Condition<OrderItemSellerType> sellerType() {
		this.sellerTypeCondition = new Condition<>();
		return this.sellerTypeCondition;
	}
	
	/**
	 * 获取[枚举]卖家类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSD、3-商户-MERCHANT查询条件
	 * 
	 * @return sellerTypeCondition [枚举]卖家类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSD、3-商户-MERCHANT查询条件
	 */
	public Condition<OrderItemSellerType> getSellerTypeCondition() {
		return sellerTypeCondition;
	}

	/**
	 * 设置[枚举]卖家类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSD、3-商户-MERCHANT查询条件
	 * 
	 * @param sellerTypeCondition [枚举]卖家类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSD、3-商户-MERCHANT查询条件
	 */
	public void setSellerTypeCondition(Condition<OrderItemSellerType> sellerTypeCondition) {
		this.sellerTypeCondition = sellerTypeCondition;
	}

	/**
	 * 构造并返回集团ID查询条件
	 * 
	 * @return groupIdCondition 集团ID查询条件
	 */
	public Condition<String> groupId() {
		this.groupIdCondition = new Condition<>();
		return this.groupIdCondition;
	}
	
	/**
	 * 获取集团ID查询条件
	 * 
	 * @return groupIdCondition 集团ID查询条件
	 */
	public Condition<String> getGroupIdCondition() {
		return groupIdCondition;
	}

	/**
	 * 设置集团ID查询条件
	 * 
	 * @param groupIdCondition 集团ID查询条件
	 */
	public void setGroupIdCondition(Condition<String> groupIdCondition) {
		this.groupIdCondition = groupIdCondition;
	}

	/**
	 * 构造并返回商圈ID查询条件
	 * 
	 * @return busdIdCondition 商圈ID查询条件
	 */
	public Condition<String> busdId() {
		this.busdIdCondition = new Condition<>();
		return this.busdIdCondition;
	}
	
	/**
	 * 获取商圈ID查询条件
	 * 
	 * @return busdIdCondition 商圈ID查询条件
	 */
	public Condition<String> getBusdIdCondition() {
		return busdIdCondition;
	}

	/**
	 * 设置商圈ID查询条件
	 * 
	 * @param busdIdCondition 商圈ID查询条件
	 */
	public void setBusdIdCondition(Condition<String> busdIdCondition) {
		this.busdIdCondition = busdIdCondition;
	}

	/**
	 * 构造并返回商户ID查询条件
	 * 
	 * @return merchantIdCondition 商户ID查询条件
	 */
	public Condition<String> merchantId() {
		this.merchantIdCondition = new Condition<>();
		return this.merchantIdCondition;
	}
	
	/**
	 * 获取商户ID查询条件
	 * 
	 * @return merchantIdCondition 商户ID查询条件
	 */
	public Condition<String> getMerchantIdCondition() {
		return merchantIdCondition;
	}

	/**
	 * 设置商户ID查询条件
	 * 
	 * @param merchantIdCondition 商户ID查询条件
	 */
	public void setMerchantIdCondition(Condition<String> merchantIdCondition) {
		this.merchantIdCondition = merchantIdCondition;
	}

	/**
	 * 构造并返回模板ID查询条件
	 * 
	 * @return templateIdCondition 模板ID查询条件
	 */
	public Condition<String> templateId() {
		this.templateIdCondition = new Condition<>();
		return this.templateIdCondition;
	}
	
	/**
	 * 获取模板ID查询条件
	 * 
	 * @return templateIdCondition 模板ID查询条件
	 */
	public Condition<String> getTemplateIdCondition() {
		return templateIdCondition;
	}

	/**
	 * 设置模板ID查询条件
	 * 
	 * @param templateIdCondition 模板ID查询条件
	 */
	public void setTemplateIdCondition(Condition<String> templateIdCondition) {
		this.templateIdCondition = templateIdCondition;
	}

	/**
	 * 构造并返回[枚举]模板类型：0-优惠券-COUPON、1-悦卡-YUECARD查询条件
	 * 
	 * @return templateTypeCondition [枚举]模板类型：0-优惠券-COUPON、1-悦卡-YUECARD查询条件
	 */
	public Condition<OrderItemTemplateType> templateType() {
		this.templateTypeCondition = new Condition<>();
		return this.templateTypeCondition;
	}
	
	/**
	 * 获取[枚举]模板类型：0-优惠券-COUPON、1-悦卡-YUECARD查询条件
	 * 
	 * @return templateTypeCondition [枚举]模板类型：0-优惠券-COUPON、1-悦卡-YUECARD查询条件
	 */
	public Condition<OrderItemTemplateType> getTemplateTypeCondition() {
		return templateTypeCondition;
	}

	/**
	 * 设置[枚举]模板类型：0-优惠券-COUPON、1-悦卡-YUECARD查询条件
	 * 
	 * @param templateTypeCondition [枚举]模板类型：0-优惠券-COUPON、1-悦卡-YUECARD查询条件
	 */
	public void setTemplateTypeCondition(Condition<OrderItemTemplateType> templateTypeCondition) {
		this.templateTypeCondition = templateTypeCondition;
	}

	/**
	 * 构造并返回是否是虚拟商品查询条件
	 * 
	 * @return virtualSkuCondition 是否是虚拟商品查询条件
	 */
	public Condition<Boolean> virtualSku() {
		this.virtualSkuCondition = new Condition<>();
		return this.virtualSkuCondition;
	}
	
	/**
	 * 获取是否是虚拟商品查询条件
	 * 
	 * @return virtualSkuCondition 是否是虚拟商品查询条件
	 */
	public Condition<Boolean> getVirtualSkuCondition() {
		return virtualSkuCondition;
	}

	/**
	 * 设置是否是虚拟商品查询条件
	 * 
	 * @param virtualSkuCondition 是否是虚拟商品查询条件
	 */
	public void setVirtualSkuCondition(Condition<Boolean> virtualSkuCondition) {
		this.virtualSkuCondition = virtualSkuCondition;
	}

	/**
	 * 构造并返回提货开始时间（为空表示无限制）查询条件
	 * 
	 * @return pickupStartTimeCondition 提货开始时间（为空表示无限制）查询条件
	 */
	public Condition<LocalDateTime> pickupStartTime() {
		this.pickupStartTimeCondition = new Condition<>();
		return this.pickupStartTimeCondition;
	}
	
	/**
	 * 获取提货开始时间（为空表示无限制）查询条件
	 * 
	 * @return pickupStartTimeCondition 提货开始时间（为空表示无限制）查询条件
	 */
	public Condition<LocalDateTime> getPickupStartTimeCondition() {
		return pickupStartTimeCondition;
	}

	/**
	 * 设置提货开始时间（为空表示无限制）查询条件
	 * 
	 * @param pickupStartTimeCondition 提货开始时间（为空表示无限制）查询条件
	 */
	public void setPickupStartTimeCondition(Condition<LocalDateTime> pickupStartTimeCondition) {
		this.pickupStartTimeCondition = pickupStartTimeCondition;
	}

	/**
	 * 构造并返回提货超时时间（为空表示永不超时）查询条件
	 * 
	 * @return pickupExpireTimeCondition 提货超时时间（为空表示永不超时）查询条件
	 */
	public Condition<LocalDateTime> pickupExpireTime() {
		this.pickupExpireTimeCondition = new Condition<>();
		return this.pickupExpireTimeCondition;
	}
	
	/**
	 * 获取提货超时时间（为空表示永不超时）查询条件
	 * 
	 * @return pickupExpireTimeCondition 提货超时时间（为空表示永不超时）查询条件
	 */
	public Condition<LocalDateTime> getPickupExpireTimeCondition() {
		return pickupExpireTimeCondition;
	}

	/**
	 * 设置提货超时时间（为空表示永不超时）查询条件
	 * 
	 * @param pickupExpireTimeCondition 提货超时时间（为空表示永不超时）查询条件
	 */
	public void setPickupExpireTimeCondition(Condition<LocalDateTime> pickupExpireTimeCondition) {
		this.pickupExpireTimeCondition = pickupExpireTimeCondition;
	}

}
